// 用户防抖
import {customRef} from "vue";

export default function (initialValue: string, delay: number) {
  // track（跟踪），trigger（触发)
  let msg = customRef((track, trigger) => {
    let timer = 0
    return {
      //get何时调用？——msg被读取时候
      get() {
        track() // 告诉Vue数据msg很重要，要对msg持续关注，一旦变化就更新
        return initialValue
      },
      //set何时调用？——msg被修改时候
      set(value) {
        clearTimeout(timer)
        timer = setTimeout(() => {
          initialValue = value
          trigger() //通知Vue数据msg变化了
        }, delay);
      }
    }
  })
  return msg
}
